package rs.creator;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import rs.domain.Track;
import rs.thread.MultiThreadWorker;
import rs.thread.processor.TagProcessor;
import rs.util.Requester;

/* Classe responsabile della creazione della mappa relativa ai tag di ogni brano. 
 * Il task in questione prevede l'uso di più thread. */
public class TagsMapCreator {

	public Map<Track, List<String>> create(Requester app, Map<String, List<Track>> user2tracks) {
		TagProcessor tp = new TagProcessor();
		MultiThreadWorker<Track> mtw = new MultiThreadWorker<Track>();
		
		List<Track> tracks = new ArrayList<Track>();
		for (String u : user2tracks.keySet()) {
			tracks.addAll(user2tracks.get(u));
		}
		
		mtw.compute(tp, tracks);
		return tp.getResult();
	}
	
}